約 2,605,471 件
https://w.atwiki.jp/skill2linux/pages/20.html
とりあえず覚えておこうねの一覧 おい、emacs が抜けれねーぞ。と言うときの為に。 キー操作 コマンド 内容 C-x C-c (save-buffers-kill-emacs) emacs を終了する。ファイル編集中の場合は、下に色々出るけど、保存しない場合は、n - yes C-2 (split-window-vertically) 画面を横に分割 C-3 (split-window-horizontally) 画面を縦に分割 C-1 (delete-other-windows) 画面をマージ M-x shell --- シェルを起動する ファイル操作 キー操作 コマンド 内容 C-x C-f (find-file) ファイルの読込み C-x C-s (save-buffer) カレントバッファを保存 C-x C-w (write-file) カレントバッファを別名で保存 C-x C-i (insert-file) カーソル位置にファイルを挿入 カーソル移動 キー操作 コマンド 内容 C-f (forward-char) 1文字進む (→) C-b (backward-char) 1文字戻る (←) C-n (next-line) 次の (= next) 行へ (↓) C-p (previous-line) 前の (= previous) 行へ (↑) M-f (forward-word) 1語進む M-b (backward-word) 1語戻る C-e (end-of-line) 行末へ C-a (beginning-of-line) 行頭へ M-e (forward-sentence) 文末へ M-a (backward-sentence) 文頭へ M- (end-of-buffer) 現在位置をマークしバッファ末尾へ M- (beginning-of-buffer) 現在位置をマークしバッファ先頭へ C-v (scroll-up) 1画面分進む M-v (scroll-down) 1画面分戻る C-x L (goto-line) 指定した行へ移動 C-l (recenter) カーソルが画面中央にくるようにする 文字操作 キー操作 コマンド 内容 Del (delete-backward-char) カーソルの左の文字を削除 C-d (delete-char) カーソルの文字を削除 C-k (kill-line) 行のカーソル以降を削除し kill-ring へ C-w (kill-region) region の範囲を削除して kill-ring へ M-w (copy-region-as-kill) region の範囲を削除せず kill-ring へ C-y (yank) kill-ring の内容をカーソル位置にはき出す M-y (yank-pop) yank した内容を消去し、前の kill-ring をはき出す(yank の直後しか実行できない) C-Space (set-mark-command) 現在のカーソル位置をマーク C-x h (mark-whole-buffer) 現在のバッファ全体を region にする C-x C-x (exchange-point-and-mark) カーソル位置 ←→ マーク位置を交換 C-o (open-line) カーソル位置から一行スペースを空ける --- (kill-rectangle) 長方形に kill-region --- (yank-rectangle) 長方形に yank --- (open-rectangle) 長方形にスペースを空ける バッファ/ウィンドウ操作 キー操作 コマンド 内容 C-x b (switch-to-buffer) ウインドウのバッファを切り換える C-x C-b (list-buffers) 存在しているバッファ一覧を表示 C-x k (kill-buffer) バッファそのものを消去する C-x 0 (delete-window) ウインドウを消去する C-x 1 (delete-other-windows) ウインドウを画面いっぱいに広げる C-x 2 (split-window-vertically) 上下に 2分割 (C-x ^ で広げる) C-x 3 (split-window-horizontally) 左右に 2分割 (C-x { , C-x } で広げる) C-x o (other-window) カーソルを次のウインドウへ移動 (時計回り) 文字列検索/置換 キー操作 コマンド 内容 C-s (isearch-forward) 順方向に検索 C-r (isearch-backward) 逆方向に検索 M-% (query-replace) 文字列置換(「!」で一度に置換できる) --- (isearch-forward-regexp) 順方向に正規表現で検索 --- (isearch-backward-regexp) 逆方向に正規表現で検索 --- (query-replace-regexp) 正規表現で置換 dired キー操作 コマンド 内容 C-x d (dired) dired モードに入る R (dired-do-rename) ファイル名変更あるいはファイルの移動(mv)(マークしたファイルがあれば全てを移動) f (dired-advertised-find-file) そのウインドウにファイルを表示 v (dired-view-file) ファイルの中身を見るだけ (編集はしない) u (dired-unmark) つけたマークをとり消す o (dired-find-file-other-window) 別のウインドウにファイルを表示 d (dired-flag-file-deletion) ファイルに削除マークをつける (u で取消) x (dired-do-flagged-delete) 削除マークをつけたファイルを本当に削除 C (dired-do-copy) ファイルをコピー (cp) (マークしたファイルがあれば全てをコピー) M (dired-do-chmod) ファイルのパーミッションを変更(chmod) g (revert-buffer) 現在の表示を更新 m (dired-mark) ファイルをマークする(これで移動やコピーがいっぺんにできる) q (dired-quit) dired モードを抜ける
https://w.atwiki.jp/ochamemo/pages/26.html
オチャメモ 使い方 cvs-status ワークディレクトリを指定 ワークディレクトリ内の状態が一覧表示される 内容 操作 備考 一覧表示 M-x cvs-status 全ファイルが表示される。ただしUnknownファイルは表示されない 状況確認 M-x cvs-examine 変更や追加されたファイルのみ表示される 更新 M-x cvs-update or g リポジトリから最新を持ってきてローカルとマージ コミット cvs-examine後、コミットしたいファイルをマークして"C" コミット前には更新しておくこと。全体に対してはどうやる? 追加 cvs-examine後、追加したいファイル上で「a」 Unknownが表示される 変更の放棄 放棄したいファイル上で「U」もしくはマークしてから「U」 削除 削除したいファイル上で「r」。物理ファイルも削除される diff cvs-status後、表示したいファイル上で「=」 特定リビジョンとのdiffは履歴を表示させてから対象リビジョン上で「=」押下 履歴 cvs-status後、表示したいファイル上で「l」 特定リビジョンを持ってくる cvs update -p -r リビジョン ファイル ファイル コマンドしかない?普通に取るとスティッキータグがつくので標準出力にだす。PCL-CVSでのやり方がわからない。。。 特定リビジョンを表示 履歴表示後、リビジョン上で「f」 examine表示時にコミットマークを消す x マークが邪魔のときにでも。。。いらない? 変更を取り消す cvs update -C -l -d -P ファイル名 全マーク 「M」 - ALT+bs 注意事項 commit前には一度ログ表示してみて、ファイル個別のログが表示されるか確認したほうが良い。-全体のログが表示されてしまうときは要注意。やり直したほうが良い。さもないと全ファイルにcommitがかかる。 他にもcommit前には、cvs-examineをやり直したほうが良いかもしれない。 とにかくcvs-status上でリポジトリ操作はやめたほうが良い。 ファイルを何も変更せずにタイムスタンプを変更した場合、Modifiedマークがつくがcvs-examineもしくはcvs-statusすれば、マークは消える(中身の違いをきちんと見ている)。 インストールなど debianだとpcl-cvsは入っていた。(emacs21から標準らしい) キーバインドなどhttp //www4.kcn.ne.jp/~boochang/emacs/pcl-cvs-vc.html 説明は以下のほうが詳しい。ただしここで説明されているPCL-CVSパッケージはAPTリポジトリには存在しない模様。http //www.ep.sci.hokudai.ac.jp/~morikawa/memo/cvs_emacs.txt
https://w.atwiki.jp/ntemacs/pages/71.html
■ Cygwin版 Emacs 特有の設定 【お知らせ】 2017/09/12 追記 Cygwin では Emacs-25.3-1 が公開されました。本設定により利用可能であることを確認しています。 https //www.mail-archive.com/cygwin-announce@cygwin.com/msg07921.html 2017/08/28 追記 Cygwin の emacs-w32.exe が gnupack の runemacs.exe から起動できるように実現方法を見直しました。 【本題】 gnupack-13 の仕組みを利用して Cygwin の Emacs を利用する方法をまとめてみました。比較的新しいバージョンが提供される Cygwin の Emacs を gnupack が提供する仕組み(startup_config.ini での環境設定など)を使って利用することができるようになります。日本語入力に emacs-mozc(参照:「emacs-mozc を動かすための設定(Emacs 設定編)」)や ddskk を使っている場合などでIMEパッチが当たった Emacs を使う必要がない場合には適用できると思います。参考としてください。 1) gnupack のインストールディレクトリに以下のバッチファイルを setup.bat という名前で作成する。 setup.bat @echo off set ROOT_DIR=%~dp0 cd /d %ROOT_DIR% if not exist setup mkdir setup cd setup echo Downloading setup-x86.exe ... powershell -Command "(New-Object System.Net.WebClient).DownloadFile( https //www.cygwin.com/setup-x86.exe , setup-x86.exe )" setup-x86.exe --root %ROOT_DIR%/app/cygwin/cygwin --site http //ftp.iij.ad.jp/pub/cygwin/ --local-package-dir %ROOT_DIR%/setup --no-desktop 2) 1)で作成したバッチファイルを起動し、emacs-w32 と emacs-el のパッケージをインストールする。 ※ View を Category にするとパッケージを選びやすくなります。 ※ インストールに併せ、Cygwin 全体をアップデートするのが良いと思います。(setup-x86.exe 起動時のデフォルトの動きです。) 3) 管理者権限で gnupack の Cygwin コンソール(startup_cygwin.exe)を開き、次のコマンドを実行する。 # cd /app/cygwin/emacs/bin # mv emacs.exe emacs.exe.orig # CYGWIN=winsymlinks nativestrict ln -s /usr/bin/emacs-w32.exe emacs.exe ※ Windows 10 1703 以降を開発モードで利用している場合で Cygwin のバージョンが比較的新しい場合(どのバージョンからかは未確認)は、一般権限でも実行可能です。 4) Emacs 起動画面に表示される画像が白抜きになって気になる場合は、~/.emacs.d/init.el などで次の設定を行う。 (setq fancy-splash-image "/app/cygwin/emacs/share/emacs/24.5/etc/images/splash.png") 5) startup_emacs.exe を(再)起動する。 変更履歴 2017/08/10 このページを作成した。 2017/07/11 setup.bat の内容を見直した。 2017/08/29 Cygwin の emacs-w32.exe が gnupack の runemacs.exe から起動できるように実現方法を見直した。
https://w.atwiki.jp/hirono2021/pages/10.html
Emacs-Lisp read-string
https://w.atwiki.jp/matsutips/pages/4.html
単語を補完する プログラムエディットのインデントを変更する 単語を補完する メニューバーに Abbrev が入っている場合は M-/ で単語の補完ができる。 具体的には、ソース中などに出てきたことのある関数名などを動的補完してくれる。 Abbrevがない場合は、 M-x abbrev-mode でモードに入れます(正確にはオン/オフができる)。 略語を登録することで略称を置換することもできます。 プログラムエディットのインデントを変更する c-basic-offset の変数を変更すると変更できる。変数の変更の仕方は M-x set-variables c-basic-offset 値 で可能。 私のxemacsだとset-variablesを入力後にenterを押して対話的に設定した。 ちなみに、ソースの末尾に /** * LocalVariables * mode c * c-basic-offset 値 * End */ みたいに書いておくと自動で読み込んでそのファイルのみ適用してくれるらしい。 べんりー。
https://w.atwiki.jp/cupnes/pages/60.html
;====================================================================== ; 言語・文字コード関連の設定 ;====================================================================== (when (equal emacs-major-version 21) (require un-define)) (set-language-environment "Japanese") (set-terminal-coding-system utf-8) (set-keyboard-coding-system utf-8) (set-buffer-file-coding-system utf-8) (setq default-buffer-file-coding-system utf-8) (prefer-coding-system utf-8);;UTF-8優先 (set-default-coding-systems utf-8) (setq file-name-coding-system utf-8) ;======================================================================= ; Misc ;======================================================================= (mouse-wheel-mode);;ホイールマウス (global-font-lock-mode t);;文字の色つけ (setq line-number-mode t);;カーソルのある行番号を表示 (auto-compression-mode t);;日本語infoの文字化け防止 (set-scroll-bar-mode right);;スクロールバーを右に表示 (global-set-key "\C-h" backward-delete-char);;Ctrl-Hでバックスペース (setq visible-bell nil);;ヴィジュアルベル無効 (setq ring-bell-function (lambda ()));;ビープ音も無効 (when (boundp show-trailing-whitespace) (setq-default show-trailing-whitespace t));;行末のスペースを強調表示 ;; load-pathの設定 (add-to-list load-path (expand-file-name "~/site-lisp")) ;; 対応する括弧を強調表示 (show-paren-mode t) (setq show-paren-style mixed) ;(set-face-background show-paren-match-face "gray10") (set-face-background show-paren-match-face "lawn green") (set-face-foreground show-paren-match-face "light sea green") (set-face-background show-paren-mismatch-face "magenta") (set-face-foreground show-paren-mismatch-face "firebrick") ;; ツールバーを表示しない (tool-bar-mode 0) ;; メニューを消したい (menu-bar-mode -1) ;; 時計の設定 (setq display-time-string-forms ((substring year -2) "/" month "/" day " " dayname " " 24-hours " " minutes)) (display-time) ;; "Lisp nesting exceeds max-lisp-eval-depth"への対処 (setq max-lisp-eval-depth 1000) ;; "Variable binding depth exceeds max-specpdl-size"への対処 (setq max-specpdl-size 1867) ;; バッファの切換えをもっと楽にしたい − iswitchb ;; (iswitchb-default-keybindings) (iswitchb-mode 1) ;; 列数を表示する (column-number-mode t) ;; スタートアップ時のメッセージを抑制 (setq inhibit-startup-message t) ;; https //github.com/typester/emacs-config/blob/master/conf/init.el ;; % で対応する括弧に移動 (defun match-paren (arg) "Go to the matching paren if on a paren; otherwise insert %." (interactive "p") (cond ((looking-at "\\s\(") (forward-list 1) (backward-char 1)) ((looking-at "\\s\)") (forward-char 1) (backward-list 1)) (t (self-insert-command (or arg 1))))) (define-key global-map (kbd "C-5") match-paren) ;; C-t でother-window、分割されてなかったら分割 (defun other-window-or-split () ; http //d.hatena.ne.jp/rubikitch/20100210/emacs (interactive) (when (one-window-p) (split-window-horizontally)) (other-window 1)) (define-key global-map (kbd "C-t") other-window-or-split) ;; scratchの初期メッセージ消去 (setq initial-scratch-message "") ;; タイトルバーにファイルのフルパス表示 (setq frame-title-format (format "%%f - Emacs@%s" (system-name))) ;; 最近使ったファイルをメニューに表示 (recentf-mode t) ;; 最近使ったファイルの表示数 (setq recentf-max-menu-items 10) ;; 最近開いたファイルの保存数を増やす (setq recentf-max-saved-items 3000) ;; ミニバッファの履歴を保存する (savehist-mode 1) ;; ミニバッファの履歴の保存数を増やす (setq history-length 3000) ;; デフォルトのタブ幅を半角スペース4つ分に (setq default-tab-width 4) ;; c-modeの設定 (setq c-default-style "linux" c-basic-offset 4) ;; - http //d.hatena.ne.jp/syohex/20110624/1308871777 ;; c-modeの自動インデントをデフォルトで無効化 ;; 有効/無効はC-c C-lで切り替え ;; (add-hook c-mode-hook ;; (lambda () ;; (c-toggle-electric-state -1))) ;; auto-installの設定 (add-to-list load-path (expand-file-name "~/.emacs.d/auto-install")) (require auto-install) (auto-install-update-emacswiki-package-name t) (auto-install-compatibility-setup) (setq ediff-window-setup-function ediff-setup-windows-plain) ;; cmigemoの設定 ;; http //qiita.com/kenbeese/items/ebbf0128d7c752a94a22 (setq migemo-dictionary "/usr/local/share/migemo/utf-8/migemo-dict") (setq migemo-command "cmigemo") (setq migemo-options ("-q" "--emacs")) (setq migemo-user-dictionary nil) (setq migemo-coding-system utf-8) (setq migemo-regex-dictionary nil) (load-library "migemo") (migemo-init) ;; ;; anything.elの設定 ;; (require anything-startup) ;; auto-complete-mode.elの設定 (add-to-list load-path "~/.emacs.d/") (require auto-complete-config) (add-to-list ac-dictionary-directories "~/.emacs.d//ac-dict") (ac-config-default) ;; GNU GLOBAL(gtags.el)の設定(ここから) (add-to-list load-path "~/site-lisp") (autoload gtags-mode "gtags" "" t) (setq gtags-mode-hook (lambda () (local-set-key "\M-t" gtags-find-tag) (local-set-key "\M-r" gtags-find-rtag) (local-set-key "\M-s" gtags-find-symbol) (local-set-key "\C-t" gtags-pop-stack))) ;; (add-hook gtags-mode-hook ;; (lambda () ;; ; Local customization (overwrite key mapping) ;; (define-key gtags-mode-map "\C-f" scroll-up) ;; (define-key gtags-mode-map "\C-b" scroll-down) ;; )) (add-hook gtags-select-mode-hook (lambda () (setq hl-line-face underline) (hl-line-mode 1))) (add-hook c-mode-hook (lambda () (gtags-mode 1) (gtags-make-complete-list))) ; Customization (setq gtags-suggested-key-mapping t) (setq gtags-auto-update t) ;; GNU GLOBAL(gtags.el)の設定(ここまで) ;; Helmの設定 (add-to-list load-path "~/site-lisp/helm") (require helm-config)
https://w.atwiki.jp/ntemacs/pages/85.html
■ Windows Subsystem for Linux の Emacs で利用できる設定 【お知らせ】 2021/06/28 追記 proxy サーバ配下の環境にある PC で Remote-WSL を使った場合、WSL に接続するまでに時間が掛かる問題が発生していました。次のページで紹介してある設定を行ったところ改善しましたので、紹介しておきます。 https //github.com/microsoft/vscode-remote-release/issues/4888 2021/02/05 追記 本ページの内容は WSL2 でも動作します。DrvFs や VolFs の記載がある場合には、Windows 側のファイルシステム、WSL2 側のファイルシステムと読み替えてください。 2020/09/16 追記 WSL2 の対策を行いました。(UNC パスのディレクトリで C-u を前置して実行した際、正常に動作するようになります。wslpath2 コマンドを使うように見直ししています。) 2019/10/31 追記 code を cmd.exe からコールする場合の引数のエスケープ処理を追加しました。 2019/10/20 追記 本設定と逆方向の操作をしたい場合には、次の設定を参考としてください。 VSCode で開いているファイルを WSL の Emacs で開くための設定 2019/09/10 追記 本設定は次の情報に基づき、作成しています。 https //code.visualstudio.com/docs/editor/command-line https //cspotcode.com/posts/attach-vscode-to-container-from-cli 2019/09/10 追記 Remote Development に対応しました。 2019/03/13 追記 VSCode を Emacsキーバインドにするための新しい Extension、Awesome Emacs Keymap が出ているようです。 https //marketplace.visualstudio.com/items?itemName=tuttieee.emacs-mcx https //ganaware.hatenadiary.jp/entry/2019/01/02/235708 Command Palette 内での文字入力時に Emacsキーバインドが使えないのは変わっていないようです。 【本題】 Windows Subsystem for Linux で起動している Emacs から Visual Studio Code でファイルを開くための設定です。 1) Visual Studio Code の Windows版 をインストールする。 https //code.visualstudio.com/ 2) Remote-SSH を使う場合は、コマンドプロンプトから ssh コマンドが使えることを確認し、さらに Windows と WSL の ssh が同じホスト名で接続できるように設定を行う。(%USERPROFILE%/.ssh/config や ~/.ssh/config の設定を行うことで、ホスト名の略称が使える。)また、接続先と公開鍵認証で接続できるようにし、ssh-agent の設定をすることでパスフレースの入力を省略できるようにする。 ※ ssh-agent-wsl を利用すると、Windows 側の ssh-agent に WSL から秘密鍵を登録でき、また Windows の ssh-agent を WSL からも利用できるようになります。 https //qiita.com/q1701/items/3cdc2d7ef7a3539f351d 3) Remote-Containers を使う場合は、Docker の設定をし、コンテナを立ち上げておく。 4) 拡張機能 Remote Development をインストールする。 ※ Remote-WSL、Remote-SSH、Remote-Containers の機能を最初に利用する際にサーバモジュールがインストールされます。Remote-WSL、Remote-SSH のサーバモジュールは sh -c で起動されるスクリプト内で wget によりインターネットから取得されるため、接続環境によっては .wgetrc にプロキシの設定を行う必要があるようです。 5) PC を一旦ログインしなおす。(VSCode の再起動だけで良いようにも思いますが、念の為) 6) 次のリポジトリの内容を WSL/WSL2 にインストールし、コマンドパスがとおた状態で wslpath2 コマンドが動作するようにする。 https //github.com/smzht/wsl-utils 7) Emacs を立ち上げ、以下の設定を有効にする。 (defun vscode-cmd-escape (arg) (replace-regexp-in-string "[ | ^\"%]" "^\\ " arg)) (defun vscode-open-command (filename optional keep-position) (interactive) (let* ((filename (expand-file-name filename)) (default-directory "/mnt/c/") authority target command filepath) (cond ((file-remote-p filename) (setq command "cmd.exe /c code") (if (file-directory-p filename) (setq command (format "%s --folder-uri" command)) (setq command (format "%s --file-uri" command))) (let* ((vec (tramp-dissect-file-name filename)) (method (tramp-file-name-method vec)) (host (tramp-file-name-host vec)) (user (tramp-file-name-user vec)) (localname (tramp-file-name-localname vec))) (cond ((or (string= method "scp") (string= method "ssh")) (setq authority "ssh-remote") (setq target (if user (format "%s@%s" user host) host)) (setq filepath (format "vscode-remote //%s+%s%s" authority target localname))) ((string= method "docker") (setq authority "attached-container") (setq dockerid (shell-command-to-string (format "cmd.exe /c docker container ls --filter name=%s --format {{.ID}} " host))) (when (not (string= dockerid "")) (setq dockerid (substring dockerid 0 -1)) (setq target (mapconcat (lambda (x) (format "%02x" (aref x 0))) (split-string dockerid "" t) "")) (setq filepath (format "vscode-remote //%s+%s%s" authority target localname)) (setq filepath (vscode-cmd-escape filepath)) (setq filepath (vscode-cmd-escape filepath))))))) (t (cond (current-prefix-arg (setq command "cmd.exe /c code") (let ((winpath (shell-command-to-string (format "wslpath2 -w %s 2 /dev/null" (shell-quote-argument (file-truename filename)))))) (when (not (string= winpath "")) (setq filepath (substring winpath 0 -1)) (setq filepath (vscode-cmd-escape filepath)) (setq filepath (vscode-cmd-escape filepath))))) (t (setq command "code") (setq filepath filename))) (when keep-position (setq command (format "%s -g" command)) (setq filepath (format "%s %d %d" filepath (line-number-at-pos) (+ (- (point) (save-excursion (beginning-of-line) (point))) 1)))))) (if (null filepath) (message "VSCodeで開くことができません") (message (format "%s %s" command filepath)) (shell-command-to-string (format "%s %s" command (shell-quote-argument filepath)))))) ;; dired で開いているディレクトリを開く (define-key dired-mode-map (kbd "V") (lambda () (interactive) (save-some-buffers) (vscode-open-command (dired-current-directory) nil))) ;; dired でカーソルがある位置のファイルを開く (define-key dired-mode-map (kbd "C-c v") (lambda () (interactive) (save-some-buffers) (vscode-open-command (dired-get-file-for-visit)))) ;; 開いているファイルをカーソルの位置を維持して開く (global-set-key (kbd "C-c v") (lambda () (interactive) (save-some-buffers) (vscode-open-command buffer-file-name t))) ※ キーの設定は使いやすいように変更してご利用ください。 ※ キーから呼ばれるコマンド内で「(save-some-buffers)」を呼んでいます。これは、Emacs で編集中のファイルが VSCode から二重に編集されないようにするための対策です。不要であれば削除してご利用ください。 ※ Emacs 開いているファイルを VSCode で開く場合にカーソル位置を維持する機能をサポートしていますが、この機能は tramp での接続先のファイルを VSCode(の Remote-SSH、Remote-Containers)で開く際には機能しません。(ファイルの先頭にカーソルが位置します。) 8) Emacs から 7) で設定したキーを入力することにより、VSCode と連携する。 ※ Remote-SSH、Remote-Containers で接続した VSCode を起動したい場合には、Emacs から接続先に tramp で接続し、その状態で設定したキーを入力してください。 ※ tramp で Docker に接続するには、 docker-tramp.el が必要です。詳しくは、次のページの<2018/07/20 追記>の内容を参考としてください。 Docker_トピック ※ ローカルPC上では、数引数(C-u)を付けないで設定したキーを入力すると、Remote-WSL 機能を使って VSCode と連携します。(Windows 10 のバージョン関係なく、DrvFs、VolFs 上のどちらにあるファイルやディレクトリも開けます。) ※ ローカルPC上では、数引数(C-u)を付けて設定したキーを入力すると、Remote-WSL 機能を使わないで VSCode と連携します。(Windows 10 1809 までは、VolFs 上にあるファイルやディレクトリは開けません。) ※ Fakeymacs をインストールすると、Emacs から起動した VSCode との行き来を Alt-o のキーで行うことができるようになります。さらに VSCode に Emacs のキーバインドの機能拡張をインストールしておけば、VSCode のウィンドウを Emacs の一フレームのような感覚で利用することができます。 Windows の操作を Emacs のキーバインドで行うための設定 (Keyhac版) 変更履歴 2018/11/26 このページを作成した。 2019/08/23 パスにシンボリックリンクが含まれる場合の対策を行った。 2019/08/23 wslpath 変換時のエラー対策を行った。 2019/08/27 Remote-WSL に対応した。 2019/09/10 Remote-SSH、Remote-Containers に対応した。 2019/10/31 code を cmd.exe からコールする場合の引数のエスケープ処理を追加した。
https://w.atwiki.jp/ntemacs/pages/44.html
■ Windows版 Emacs 共通の設定 【お知らせ】 2015/05/17 追記 Cygwin版 Emacs でも動作するように対応しました。 【本題】 Emacs で指定したファイルを Eclipse で開くための設定です。 (require dired) (require cc-mode) (defvar eclipse-home "/c/usr/local/eclipse_4.4") (defun eclipse-open (filename) (message "%s" (concat "cygstart eclipse " filename)) (let ((default-directory (expand-file-name "./" eclipse-home))) (shell-command-to-string (concat "cygstart eclipse " (shell-quote-argument (if (fboundp cygwin-convert-file-name-to-windows) (cygwin-convert-file-name-to-windows filename) filename)))))) (define-key dired-mode-map (kbd "C-c e") (lambda () (interactive) (eclipse-open (dired-get-filename nil t)))) (define-key java-mode-map (kbd "C-c e") (lambda () (interactive) (eclipse-open buffer-file-name))) eclipse-home 変数、バインドキーの設定は適宜変更してください。 上記の設定をすると、dired や java-mode で C-e を押下することで、対象のファイルを Eclipse で開くことができます。 また、「Windows の操作を Emacs のキーバインドで行うための設定 (Keyhac版)」と併用すると、Eclipse に移動した後、C-x o で Emacs に戻ることができ便利です。 (C-x o の設定は、Windows 8 以降では動作しなくなりました。また、Windows 7 の場合でも、Keyhac の設定で eclipse.exe を除外設定している場合は動きません。) 変更履歴 2014/09/29 このページを作成した。 2015/05/17 Cygwin版 Emacs でも動作するように対応した。
https://w.atwiki.jp/tomy_dj/pages/19.html
カウンター - 【メイン】 Xkeymacs 世界中のプログラマーに根強く支持されているEmacsというテキストエディタがあります。 そのエディタでは殆どの動作をキーボードショートカットで実施可能なんだそうです。 私は触ったこともありませんが。。。 そのキーボードショートカットをどのような環境でも使えるようにしてくれるソフトがXkeymacsです。 まず初めに C-b:左 C-f:右 C-p:下 C-n:上 C-a:行頭 C-e:行末 C-l:現在行を中央にスクロール C-m:改行 をマスターすると、生産性が格段に向上するでしょう。 もう、いちいちエンターやバックスペースに手を伸ばさなくて良いのです。 慣れるまで1週間くらい生産性が落ちると思いますが、根気強く取り組みましょう。 ※C-a:コントロールを押しながらaキー M-a:Altキーを押しながらaキー ※慣れてきたら以下の設定をレジストリに追加しましょう Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Oishi\XKeymacs2\Default] "3.26 compatible"=dword 00000001 Shiftを押しながら操作することで範囲選択が出来るようになります 【参考資料】 【外部リンク】 xkeymacsでカーソル移動しながら範囲選択
https://w.atwiki.jp/kobapan/pages/342.html
10数年来、タグジャンプを使わずに他人のソースコードを読んで来たが、寄る年波か、突然面倒くさくなったので、emacsでctagsを使うことにした。 インストール TAGSファイルの生成に、外部プログラムのExuberant Ctagsを使う。41種類の言語に対応。Schemeも対応している。 $ sudo apt install exuberant-ctags 設定 emacsでctagsを気持ちよく使うために、ごにょごにょ。 (defun compile-ctags (dir) "compile ctags for the current project" (interactive "D[ctags] project root ? ") (let ((d (expand-file-name dir))) (cd d) (compile "ctags -e -R --exclude= *.elc --exclude= .git ") (add-to-list tags-table-list d) (setq tags-file-name d) )) (global-set-key [f5] compile-ctags) (global-set-key (kbd "M-,") (lambda () (interactive) (find-tag last-tag t))) (global-set-key (kbd "C-M-,") find-tag-other-window) emacs内でTAGSファイルの作成・更新 1. プロジェクト内のファイルを開いているところで、"F5"を押し下げ。 2. ミニバッファに現在のファイルのいるディレクトリパスが表示されるので、プロジェクトのルートに変更。 3. エンターで実行。 ※tags-teble-list に無ければ追加。 ※tags-file-name は新しく指定したプロジェクトのTAGSに変更 タグジャンプの仕方 ※デフォルトのキーマップ使いにくいので適当に M-. find-tag 最初の定義位置にジャンプ M-, find-tag(引数付) M-. した後に使うと次の同名の関数に飛ぶ M-* pop-tag-mark ジャンプ後、前の位置に戻る(定義ジャンプを繰り替えした場合は、遡って行く) C-M-, find-tag-other-window 定義位置に別windowでジャンプ C-M-. find-tag-regexp 正規表現で関数を探してジャンプ 追伸 jixiuf/ctags-update (auto) update TAGS in parent directory using exuberant-ctagsを使うかどうするか迷い中。 参考 etags の使い方メモ - My Emaps Emacs でTAGファイルを使って関数にタグジャンプ 麦汁三昧